//
//  WLTool.h
//  Kangyx
//
//  Created by 王乐乐 on 16/9/14.
//  Copyright © 2016年 Wanglele. All rights reserved.
//

#import <Foundation/Foundation.h>

/** 图片选择器CallBack */
typedef void(^BlkToChooseImg)(UIImage * theImage);


@interface WLTool : NSObject


/**
 *  拨打电话
 *
 *  @param telNumber 电话号码
 */
+ (void)makeTelephoneCall:(NSString *)telNumber;


/**
 *  跳转到系统设置页面，iOS8之后可用
 */
- (void)gotoSettings NS_AVAILABLE_IOS(8_0);
/**
 *  生成设备的UUID，iOS6之后可用
 *
 *  @return uuid字符串
 */
+ (NSString *)getUUIDString NS_AVAILABLE_IOS(6_0);

/**
 *  获取当前显示的viewcontroller
 *
 *  @return return 当前显示的vc
 */
+ (UIViewController *)obtainTopViewController;


#pragma mark -------  控件兵工厂＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝

/**
 *  快捷创建导航按钮
 *  @param  image 正常图片
 *  @param  highImage 高亮图片
 *  @param  target 代理对象
 *  @param  action 函数
 *  @return return UIBarButtonItem
 */
+ (UIBarButtonItem *)wl_itemWithImage:(NSString *)image highImage:(NSString *)highImage target:(id)target action:(SEL)action;

/**
 *  快捷创建导航按钮
 *  @param  title 标题
 *  @return return UIBarButtonItem
 */
+ (UIBarButtonItem *)wl_itemWithTitleColor:(UIColor *)titleColor title:(NSString *)title target:(id)target action:(SEL)action;



/**
 *  生成UITextField (只有默认文字的）

 */
+ (UITextField *)wl_getTFWithleftViewWidth:(CGFloat)leftViewWidth keyBoardType:(UIKeyboardType)keyboardType isSecurity:(BOOL)bSecurity leftText:(NSString *)leftText placeholder:(NSString *)placeholder;



#pragma mark__________________图片选择器__________________________


/**
 *  选择图片管理类
 *  (使用的时候注意保持这个对象存在,防止提前释放)
 */

//选择图片
-(void)chooseImageWithType:(NSInteger)isLibrary FromViewController:(UIViewController *)fromVC Result:(BlkToChooseImg)result;

//保存图片到相册
-(void)saveImageToPhotosAlbum:(UIImage *)image  Result:(void(^)(BOOL isSuccess))result;


/**
 *  获取当前时间戳
 *
 *  @return 时间戳字符串
 */
+ (NSString*)getCurrentTimestamp;

/**
 *  根据时间戳生成图片名称（生成规则：时间戳md5）
 *
 *  @return 图片名称
 */
+ (NSString*)generateImageName;

/**
 *  保存图片到沙盒
 *
 *  @param imageName 图片名称
 *  @param image     图片
 *
 *  @return 是否保存成功
 */
+ (BOOL)saveImageWithName:(NSString*)imageName andImage:(UIImage*)image;

/**
 *  从沙盒中获取图片
 *
 *  @param imageName 图片名称
 *
 *  @return 图片
 */
+ (UIImage*)loadImageWithName:(NSString*)imageName;

/**
 *  从沙盒中删除图片
 *
 *  @param imageName 图片名称
 */
+ (void)deleteImageWithName:(NSString*)imageName;

/**
 *  根据图片名称获取图片路径
 *
 *  @param imageName 图片名称
 *
 *  @return 图片路径
 */
+ (NSString*)generateImagePathwithName:(NSString*)imageName;

/**
 *  清空本地存储的照片缓存
 */
+ (void)clearLocalImageCache;

/**
 *  压缩图片尺寸
 *
 *  @param sourceImage 源数据
 *  @param targetWidth 目标宽度
 *
 *  @return 缩小尺寸后的图片
 */
+ (UIImage *)compressImage:(UIImage *)sourceImage toTargetWidth:(CGFloat)targetWidth;

/**
 *  压缩图片到固定大小
 *
 *  @param image 源数据
 *  @param size  目标大小
 *
 *  @return 缩小后的图片
 */
+ (UIImage *)compressImage:(UIImage *)image toTargetsize:(float)size;


/**
 *  延迟执行
 *
 *  @param delay 延迟时间
 *  @param block 执行内容
 *
 *  @return 定时器 方便于控制叠加操作
 */
+ (BOOL)wl_afterPerformWithDelay:(NSTimeInterval)delay block:(void(^)())block;


/**
 判断当前手机是否是iPhone X系列
 */
+ (BOOL)isiPhoneXSeries;


/**
 本地存储 首页无网状态时的 网络图片
 */
+ (void)saveNetWorkImageToLocal:(NSString*)imageUrl withImageName:(NSString*)imageName;

/**
  从本地存储 加载 首页无网状态时的 网络图片
 */
+ (UIImage*)getNetWorkImageFromLocalWithImageName:(NSString*)imageName;

/**
 获取设备号
 */
+ (NSString*)getAppDeviceUdid;

/**
 获取唯一广告标识
 */
+ (NSString*)getAppIDFA;
@end
